There are a lot of approaches to this kind of problem. Starting with the simplest approach I think you'd benefit from using a K-means classification, with K=2 (or higher numbers to address @Luigi's concerns about model bias.) Once you've defined the geometric center of each population, you can treat them as foci, and use the equidistant points between each focus to define the boundary of interest. That does import another assumption (that the boundary is equidistant to the two points).
A more sophisticated way to divide two clusters is with a support vector machine but because this is a machine learning approach, you'd need to manually annotate a number of training data sets as "group 1" or "group 2." But after training, the SVM will define the optimal boundary (hypersurface) between these groups.
The two types of approaches (clustering versus machine learning) differ in where the manually-imported assumptions lie. One can combine them fruitfully -- using K-means to define the populations and SVM to define the dividing boundary.