only call build_func in subprocess; use simple os.fork() instead of multiprocessing.Process()