It's up to your function to determine how many cores it uses (or rather is able to take advantage of), not your Process
instance
I think this is something of an inversion to how you're designing, but processes are not locked to any or even some set of cores other than how the operating system assigns them, generally providing them time on the resources it manages (CPU, memory, network, disk..), which they practically request via its API.
Unless your process goes out of its way to take advantage of multiple cores, it will only be able to take advantage of at most one core (thread) and likely less overall work than the core possibly can.
However, many 3rd party libraries (such as NumPy) will take advantage of more cores unless otherwise instructed by creating additional threads, normally as many as the system supports by default. If this is the case, you can adjust the number of threads they use, usually via arguments or environmental variables.
Take a look at these resources
Once created, you could set operating system-level restrictions (cgroup settings for most Linux-like systems) on your new process to change how it's scheduled if the parent process has sufficient permissions to do so, but this may result in worse performance than expected (for example, if you create 8 threads, but restrict usage to 2 cores, overhead time will be wasted switching between threads that are not able to get more value)
See also