Write our own threadpool to avoid creating 50 subprocesses.

:cold_sweat: