In addition to other answers, especially the link posted by @soulcake: If you schedule a long running command with a too short interval, cron will happily execute the second before the first one completes (unless there's some kind of mutex implemented in the command).
That often slows down the original command even further, leading to another instance being run before the previous ones complete, etc. Or it might be undesirable for other reasons.
General way to prevent is to condition running the command with a guard that ensures that a previous command is not running. For example:
10 * * * * pgrep my_slow_command >/dev/null || /usr/local/bin/my_slow_command
Make sure that pgrep matches the command's name when it runs, e.g. python scripts have python as the name of the executable, which is probably not specific enough and you would have to match against the python's script name as well.
10 * * * * pgrep -f my_script.py || /usr/local/bin/my_script.py
(pgrep without '-f' option matches bash script names, though)
If you can't use pgrep for some reason:
10 * * * * ps ax | grep [m]y_command || /usr/local/bin/my_command
The brackets are used to avoid matching the grep command itself.