I'll assume X is a metric space. Suppose e is a cluster point of E. The ball B(e,1) contains a point e_1 of E, e_1 ≠ e. The B(e, d(e1, e)/2) contains a point e2 of E,
e2 ≠ e. Note that e2 ≠ e1 since d(e2, e1) ≥ d(e1,e) - d(e2,e) > d(e1,e) - d(e1,e)/2 = d(e1,e)/2 > 0. Continue the process to obtain a sequence S = {e_n} ⊂ E with e1 ≠ e_2 all for all n > 1, e_n is in B(e, d(e(n-1),e)/n) . Hence for all n > 1,
d(e_n, e_(n-1)) ≥ d(e_(n-1), e) - d(e_n, e)
> d(e_(n-1), e) - (1/n)d(e_(n-1), e) = (n - 1)/n d(e_(n - 1), e) > 0.
This implies all the elements of S are distinct. So S is an infinite subset of E, and E has infinitely many points.
Edit: I corrected the mistake in the first in second lines. Note that in the second line of the inequality, I only changed the > into a = in the 2nd to last string. Recall e_n is in B(e, d(e_(n-1),e)/n), so d(e_n, e) < d(e_(n-1), e)/n. Thus d(e_(n-1), e) - d(e_n, e) > d(e_(n-1), e) - (1/n) d(e_(n-1), e) = (n - 1)/n d(e_(n - 1), e) > 0. Note that 1/2 is not present in the second line.
Edit: The proof I gave is constructive, but here is an indirect way to prove the statement. If E has finitely many points, say, E = {e_1,...,e_n}, then since each one-point set {e_i} is closed and the union of finitely many points are closed, each subset of E is closed. By complementation, each subset of E is open. So each {e_i} is open and none of the points are cluster points. This argument works in general when X is a T1 topological space.