Is this part of a web server or some other system where you could end up spawning N python processes instead of 1 at a time?
No, it's a background job. We can easily control the Python process count by controlling the job queue concurrency on the Elixir side.
I use a similar strategy for python calls from elixir. This is in a web server, usually they're part of a process pool. So we start up N workers and they hang out and answer requests when needed. I just have an rpc abstraction that handles all the fiddly bits. The two sides pass erlang terms back and forth. Pretty simple.