Segmentation and Labeling of White Blood Cells
I can't recommend anything in the realm of your clustering algorithm, but this looks to be pretty simple. The initial segmentation worked nicely; a simple watershed should separate those cells. 

For example, in MATLAB:

function W = dowatershed(I)
    %% I is a logical mask (i.e., im2bw)
    d = -bwdist(~I);    
    l = watershed(d);
    W = I;
    W(l == 0) = 0;
end