@aseyboldt, I also get the broken pipe on a jupyter notebook. I’ll check if I can force the child to wait to receive the abort message before exiting.
However, I just noticed that the child’s error gets printed to the terminal that is running the notebook!
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:...\Anaconda3\lib\multiprocessing\spawn.py", line 105, in spawn_main exitcode = _main(fd)
File "C:...\Anaconda3\lib\multiprocessing\spawn.py", line 115, in _main
self = reduction.pickle.load(from_parent)
File "C:...\Anaconda3\lib\site-packages\theano\compile\ops.py", line 517, in load_back
obj = getattr(module, name)
AttributeError: module '__main__' has no attribute 'rate_'
It is not possible to make the child processes more robust because they never even get constructed. We have to try to capture the messages sent to the stderr from the process manager…