The library offers the same interface between single process & multi process, the only difference is doing a function call specifying which backend to use and everything will work out of the box. It supports default labels & partial labels so that you can build your child instances incrementally. It strives to be flexible & well documented.
There is also an experimental backend for it written in Rust as a way to support asyncio applications, more in the docs!