Нашел такой вариант. Не модальное, но сгодится для многих случаев.
# -*- coding: utf-8 -*-
#!usr/bin/env python
from Tkinter import *
makemodal = 1
def dialog():
win = Toplevel()
Label(win, text = "Новое окно").pack()
Button(win, text = "Ok", command = win.destroy).pack()
if makemodal:
win.focus_set()
win.grab_set()
win.wait_window()
print "dialog exit"
root = Tk()
Button(root, text = 'Главная форма', command = dialog).pack()
root.mainloop()