Heart disease is considered one of the calamitous diseases which eventually leads to the death of a human, if not diagnosed earlier. Manually, detecting heart disease needs doing several tests. By analyzing the result of tests, it can be assured whether the patient got heart disease or not. It is time consuming and costly to predict heart disease in this conventional way. This paper describes different machine learning (ML) algorithms to predict heart disease incorporating a Cardiovascular Disease dataset. Although many studies have been conducted in this field, the performance of prediction still needs to be improved. In this paper, we have focused to find the best features of the dataset by feature selection method and applied six machine learning algorithms to the dataset in three steps. Among these ML algorithms, the random forest algorithm gives the highest accuracy which is 72.59%, with our best possible feature setup. The proposed system will help the medical sector to predict heart disease more accurately and quickly.