One way to solve this is to create a new matrix dataNew = [real(data), imag(data)] and then run kmeans on dataNew, assuming data is a row vector of samples.
Do you do data preprocessing before you input data into kmeans? Maybe your preprocessing returns complex data. Did you checked data that actually go into the kmeans?
In that case, depending on what the data contains you can use separate the real and imaginary data and each one of them "pass" them thru the process of kmeans clustering. In time-wise signals the imaginary data is the phase, so in that case you can have two separate types of data - one for the real time and one for the phase data (time lags/delays or corresponding interpretation).
Should you decide that this is not your goal and the separation of data don't suit the meaning of the signal, you may use the ABS (ARe, AIm) or the sqrt (ARe, AIm) or the like.
I hope that his answers your question.
*However, there is (maybe) a much simpler explanation - it means that your data is a matrix and program for kmeans uses only rows (or inverted columns).