Using Support Vector Machine algorithm to analyze satellite image
When you want to parallelize a program you have to actually do it. When you're using C, you can hope that the compiler will spread the CPU "tension" to other CPU, which it will do with the right compiler command. But you're using Python so it cannot do the optimization since there is no (separate) compiler.

But even with C it doesn't work that well. Normally you have to do it yourself with threads. If you can make your calculation on threads you should do it. I didn't read your code in details, but when it comes to SVN I guess that the calculation doesn't depend on previous calculation. If that's the case you might be able to parallelize your program with as many threads as you have cores. 

But I think that you have to do that step of parallelizing by yourself, you can't count on the machine to guess where it can or cannot parallelize. 

And that will possibly reduce the execution time by the number of threads. (even if that not exactly true, that's a max).