Implementing multiprocessing rather than multithreading