run_in_fork forks and then runs
f in the child process, and then writes the result
back to the parent process over a unix pipe. Note that
f cannot contain any async
calculations. An Error will be returned if an exception is thrown in the child, or the
child disconnects before writing the result.
run_in_fork_multiple is just like
run_in_fork but allows the user to write
multiple results from the child to the parent. This is useful when the the data being
written over the pipe is very large, as deserializing the data may take a long time,
and the user may want to split the data into smaller chunks.