I feel like this answer mostly rests on an underlying misunderstanding of what it means to "simulate" something.
Generally speaking, to "simulate" a complex system means to reproduce certain features of such system with a platform that is easier to control (often, but not always, a classical computer).
Therefore, the question of whether "one can simulate a quantum computer in a classical computer" is somewhat ill-posed.
If you mean that you want to replicate every possible aspect of a "quantum computer", then that is never going to happen, just like you are never going to be able to simulate every aspect of any classical system (unless you use the same identical system of course).
On the other hand, you certainly can simulate many aspects of a complex device like a "quantum computer". For example, one may want to simulate the evolution of a state within a quantum circuit.
Indeed, this can be exceedingly easy to do! For example, if you have python on your computer, just run the following
import numpy as np
identity_2d = np.diag([1, 1])
pauliX_gate = np.array([[0, 1], [1, 0]])
hadamard_gate = np.array([[1, 1], [1, -1]]) / np.sqrt(2)
cnot_gate = np.kron(identity_2d, pauliX_gate)
H1_gate = np.kron(hadamard_gate, identity_2d)
awesome_entangling_gate = np.dot(cnot_gate, H1_gate)
initial_state = np.array([1, 0, 0, 0])
final_state = np.dot(awesome_entangling_gate, initial_state)
print(final_state)
Congratulation, you just "simulated" the evolution of a separable two-qubit state into a Bell state!
However, if you try to do the same with, say, 40 qubits and a nontrivial gate, you are not going to be able to pull it off this easily.
The naive reason is that to even just store the state of an $n$-qubit (non sparse) state you need to specify ~$2^n$ complex numbers, and this start taking a lot of memory very quickly.
I say "naive" here because in many cases there may be tricks that allow you to avoid this problem$^{(1)}$.
This is why many people work on trying to find clever tricks to simulate quantum circuits (and other types of quantum systems) with classical computers, and why this is far from trivial to do$^{(2)}$.
Other answers already touched on various aspects of this hardness, and the answers to this other question already mention many available platforms to simulate/emulate various aspects of quantum algorithms, so I will not go there.
(1)
An interesting example of this is the problem of simulating a boson sampling device (this is not a quantum algorithm in the sense of a state evolving through a series of gates, but it is nonetheless an example of a nontrivial quantum device). BosonSampling is a sampling problem, in which one is tasked with the problem of sampling from a specific probability distribution, and this has been shown (under likely assumptions) to be impossible to do efficiently with a classical device. Although it was never shown to be a fundamental aspect of this hardness, a certainly nontrivial issue associated with simulating a boson sampling device was that of having to compute an exponentially large number of probabilities from which to sample. However, it was recently shown that indeed one does not need to compute the whole set of probabilities to sample from them (1705.00686 and 1706.01260).
This is not far in principle from simulating the evolution of a lot of qubits in a quantum circuit without having to store the whole state of the system at any given point.
Regarding more directly quantum circuits, examples of recent breakthrough in simulation capabilities are 1704.01127
and 1710.05867 (also a super-recent one, not yet published, is 1802.06952).
(2)
In fact, it has been shown (or rather, strong evidence has been provided for the fact) that it is not possible to efficiently simulate most quantum circuits, see 1504.07999.