Is there a way to put a separate line between clusters for k-Means Clustering?
there are two answers to this question.

The first one is yes, you can do it with python code. From a Sklearn tuto, you can plot the decision boundary by using meshgrid:

# Step size of the mesh. Decrease to increase the quality of the VQ.
h = .02     # point in the mesh [x_min, x_max]x[y_min, y_max].

# Plot the decision boundary. For that, we will assign a color to each
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))

# Obtain labels for each point in mesh. Use last trained model.
Z = kmeans.predict(np.c_[xx.ravel(), yy.ravel()])

# Put the result into a color plot
Z = Z.reshape(xx.shape)
plt.figure(1)
plt.clf()
plt.imshow(Z, interpolation='nearest',
       extent=(xx.min(), xx.max(), yy.min(), yy.max()),
       cmap=plt.cm.Paired,
       aspect='auto', origin='lower')

plt.plot(X[:, 0], X[:, 1], 'k.', markersize=2)
# Plot the centroids as a white X
centroids = kmeans.cluster_centers_
plt.scatter(centroids[:, 0], centroids[:, 1],
        marker='x', s=169, linewidths=3,
        color='w', zorder=10)
plt.xlim(x_min, x_max)
plt.ylim(y_min, y_max)
plt.xticks(())
plt.yticks(())
plt.show()


And there is a second answer, the analytical one:

The decision boundary is the group of points at which we can't decide the label. For the Kmeans it is the equidistant points from two centroides. A small calculation shows that this is a line. To find it's equation, you only need the coordinates of the two centroides.

After that you find the middle of the segment between those two, find an orthogonal vector to this segment going throw the middle and you have your equation. You just need to plot it and voila! Coding this don't take long, i'll try to update the answer if you want.