fix longstanding memory leak from multiprocessing

apparently the Pool's processes were not closing properly, so the
garbage collector wouldn't clean up, resulting in large memory leaks.
after trying a lot of really complicated things the fix ended up being
ridiculously simple.