Join worker processes and keep track of them in the log

This also prevents a zombie from hanging around until the next worker
is spawned by multiprocessing.

Fixes 411.